The invention relates to robots and more particularly, to robot tool position and orientation calibration.
High level computer programming languages and Computer Aided Drafting/Computer Aided Machining (CAD/CAM) has made off-line robotic programming more feasible for more complex tasks. For example, a robot may be programmed to cut a workpiece with a circular blade tool and then remove material from the workpiece with a drill bit tool. The robot uses various coordinate systems to facilitate calculating the several motions required to cut and remove material from the workpiece. Because one or more of the various coordinate systems may not exactly match actual robot positions (e.g., due to imperfect alignment of the robot, robot parts, tools, and the like), robot calibrations are typically used to compensate for such mismatches.
The use of multiple tools (e.g., a circular blade and a drill bit) further complicates calibration because each tool typically has a different tool center point (TCP), e.g., each tool may have a different length. As such, a robot is normally recalibrated for each such tool. Such calibration requires additional time and expense. Normally, each tool is mounted into the robot spindle and a standard TCP calibration is performed. This determines the TCP of each tool. Further, spindle orientation is determined by the orientation determined from the two TCP positions. There are several deficiencies to this approach. First, this approach assumes that the spindle axis is the same as tool orientation (this is not typically true when mechanical tolerance and mounting error are considered). Second, the TCP of the tool is calibrated using visual inspection that may not be reliable or repeatable. Third, this recalibration for each tool can be time consuming, adding expense, and increases the chance for errors.
Therefore, a need exists for using different robot tools without having to perform a recalibration for each tool.